package org.shj.pattern.adapter

class Old{
  def oldMethod{
    println("I'm old method")
  }
}

trait NewInterface{
  def newMethod
}

/**
 * 将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那
 * 些类可以一起工作
 * 主要解决： 在软件系统中，常常要将一些“现存的对象”放到新的环境中，而新环境要求的接口是现对象不能满足的。
 */
class Adapter extends NewInterface{
  val old = new Old
  
  def newMethod{
    old.oldMethod
  }
}

object Adapter{
  def main(args: Array[String]): Unit = {
    val a = new Adapter
    a.newMethod
  }
}